package com.zhenmaitang.clinic_sys.service;

import com.zhenmaitang.clinic_sys.entity.UriPermission;

import java.util.List;

public interface UriPermissionService {
    
    /**
     * 获取所有URI权限映射
     */
    List<UriPermission> getAllUriPermissions();
    
    /**
     * 根据ID获取URI权限映射
     */
    UriPermission getUriPermissionById(Integer id);
    
    /**
     * 根据URI和HTTP方法获取URI权限映射
     */
    List<UriPermission> getUriPermissionsByUriAndMethod(String uri, String method);
    
    /**
     * 创建URI权限映射
     */
    UriPermission createUriPermission(UriPermission uriPermission);
    
    /**
     * 更新URI权限映射
     */
    UriPermission updateUriPermission(UriPermission uriPermission);
    
    /**
     * 删除URI权限映射
     */
    void deleteUriPermission(Integer id);
    
    /**
     * 检查用户是否有访问指定URI和HTTP方法的权限
     */
    boolean hasUriPermission(Integer userId, String uri, String method);
    
    /**
     * 根据URI路径模式匹配
     * 支持通配符匹配，如 /api/users/* 可以匹配 /api/users/1
     */
    UriPermission matchUriPattern(String requestUri, String method);

}